草庐IT

c++ - C 和 C++ 中 union 的用途

全部标签

c++ - protected 继承的实际用途是什么?

公共(public)继承很容易。A:publicB表示每个A都是B。在大多数编程语言中,例如vb.net和Objective-c,这是唯一的继承类型。私有(private)继承也简单但没有意义A:私有(private)B表示A由B实现。但是,这是没有意义的,因为这意味着A应该包含B。所有权意味着更少的耦合,没有缺点。那么我们就有了protected继承。谁能给我解释一下这到底是为了什么?有人说这是一种“关系”。我还不是很清楚。是否有人有一些示例案例,其中人们以良好的模式(和良心)将protected继承用于实际生产用途? 最佳答案

c++ - =delete 有哪些用途?

这个问题在这里已经有了答案:c++syntax:defaultanddeletemodifiers(1个回答)关闭9年前。今天早些时候我问aquestion这导致了另一个问题:我应该什么时候使用=delete?我认为没有专门针对SO上的=delete的帖子,因此我在一本名为“C++编程语言”的书中查找了它。我将在下面的答案中列出我的发现。如果有更多要说或我弄错了,请发表评论或回答。 最佳答案 事实证明,=delete非常有用!以下是几个例子:基本上我们可以防止复制基类,因为它可能经常导致切片:structBase{Base(){}B

c++ - =delete 有哪些用途?

这个问题在这里已经有了答案:c++syntax:defaultanddeletemodifiers(1个回答)关闭9年前。今天早些时候我问aquestion这导致了另一个问题:我应该什么时候使用=delete?我认为没有专门针对SO上的=delete的帖子,因此我在一本名为“C++编程语言”的书中查找了它。我将在下面的答案中列出我的发现。如果有更多要说或我弄错了,请发表评论或回答。 最佳答案 事实证明,=delete非常有用!以下是几个例子:基本上我们可以防止复制基类,因为它可能经常导致切片:structBase{Base(){}B

c++ - 在类中使用 union

我看到一些代码如下:classA{private:union{B*rep;A*next;};//novariablesofthisanonymousdefined!voidfunc(){A*p=newA;p->next=NULL;//whyphasamembervariableof'next'?}};我已经用VS2010编译了上面的代码,没有任何错误。问题来了,为什么p有成员变量'next'?union{B*rep;A*next;};据我所知,这是一个匿名union,甚至没有定义变量。我们怎样才能像那样访问这个union内部的成员变量? 最佳答案

c++ - 在类中使用 union

我看到一些代码如下:classA{private:union{B*rep;A*next;};//novariablesofthisanonymousdefined!voidfunc(){A*p=newA;p->next=NULL;//whyphasamembervariableof'next'?}};我已经用VS2010编译了上面的代码,没有任何错误。问题来了,为什么p有成员变量'next'?union{B*rep;A*next;};据我所知,这是一个匿名union,甚至没有定义变量。我们怎样才能像那样访问这个union内部的成员变量? 最佳答案

c++ - 对 C++ 中头文件的实际用途感到困惑

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:InC++whyhaveheaderfilesandcppfiles?由于两个相互矛盾的原因,我不太了解C++头文件:我认为头文件的目的通常是分离接口(interface)和实现。换句话说,客户端通过头文件来学习如何使用类,而不必担心类在内部实际上是如何实现这个功能的。那么,为什么C++类的私有(private)变量会在其头文件中指定?在我看来,头文件中的私有(private)变量违反了接口(interface)和实现的分离。直观地说,我认为将私有(private)变量放在源文件中会更有意义,因为这是不暴露给

c++ - 对 C++ 中头文件的实际用途感到困惑

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:InC++whyhaveheaderfilesandcppfiles?由于两个相互矛盾的原因,我不太了解C++头文件:我认为头文件的目的通常是分离接口(interface)和实现。换句话说,客户端通过头文件来学习如何使用类,而不必担心类在内部实际上是如何实现这个功能的。那么,为什么C++类的私有(private)变量会在其头文件中指定?在我看来,头文件中的私有(private)变量违反了接口(interface)和实现的分离。直观地说,我认为将私有(private)变量放在源文件中会更有意义,因为这是不暴露给

c++ - 在 C++ 中静态初始化匿名 union

我正在尝试在VisualStudio2010中静态初始化以下结构:structData{intx;union{constData*data;struct{intx;inty;};};};以下失败,errorC2440:'initializing':cannotconvertfrom'Data*'to'char'。staticDatad1;staticDatad={1,&d1};staticDatad2={1,{1,2}};我发现了一些可以正确初始化的方法的引用,但它们都不能在VS2010中工作。有什么想法吗? 最佳答案 ISOC++

c++ - 在 C++ 中静态初始化匿名 union

我正在尝试在VisualStudio2010中静态初始化以下结构:structData{intx;union{constData*data;struct{intx;inty;};};};以下失败,errorC2440:'initializing':cannotconvertfrom'Data*'to'char'。staticDatad1;staticDatad={1,&d1};staticDatad2={1,{1,2}};我发现了一些可以正确初始化的方法的引用,但它们都不能在VS2010中工作。有什么想法吗? 最佳答案 ISOC++

c++ - 使用 n[c -'0' ] 的真正用途是什么?

我是C的新手,我遇到了这样的代码:intn[10];if(c>='0'&&c在if循环中为什么我们必须在0周围使用单引号,它有什么用,为什么我们不能定义0立即作为整数?而在第二行代码++n[c-'0']中,这样使用数组有什么用,从某种意义上说我们需要减去0(再次为什么在这种情况下使用单引号?)来自c的数组索引?如果我喜欢这个n[c-'0'],索引操作的结果(c-'0')会是一个字符还是整数?鉴于有人可以说我,这种数组的真正用途是什么,有什么缺点?提前致谢。 最佳答案 在C中,'0'是一个整数,其值将数字零表示为一个字符,而不是值0,